using System.Configuration;
using System.Linq;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace ClickLand.Web.UI.WebControls
{
    public class ComponenteBase : Control
    {
        /// <summary> Metodo que llena un dropdownList con los valores definidos en el WebConfig </summary>
        /// <param name="dropDonwList">objeto a llenar</param>
        /// <param name="keyConfig">nombre del parametro del config</param>
        /// <param name="limpiar">si limpia los valores del control o no </param>
        /// <remarks>los valores en el web.config deben estar separados por ;</remarks>
        public void CargarListaSinValor(ListControl dropDonwList, string keyConfig, bool limpiar)
        {
            string[] datos = ConfigurationManager.AppSettings[keyConfig].Split(';');
            if (limpiar)
                dropDonwList.Items.Clear();

            foreach (var dato in datos)
            {
                dropDonwList.Items.Add(new ListItem(dato, dato));
            }

        }


        /// <summary> Metodo que llena un dropdownList con los valores definidos en el WebConfig </summary>
        /// <param name="dropDonwList">objeto a llenar</param>
        /// <param name="keyConfig">nombre del parametro del config</param>
        /// <param name="limpiar">si limpia los valores del control o no </param>
        /// <remarks>los parametros en el web.config deben estar separados por ; y los datos asi Nombre|valor</remarks>
        public void CargarListaConValor(ListControl dropDonwList, string keyConfig, bool limpiar)
        {
            string[] datos = ConfigurationManager.AppSettings[keyConfig].Split(';');
            if (limpiar)
                dropDonwList.Items.Clear();

            foreach (string[] info in datos.Select(dato => dato.Split('|')))
            {
                dropDonwList.Items.Add(new ListItem(info[0], info[1]));
            }
        }
    }
}
